www.gusucode.com > VC++ 宾馆管理系统(MSSQL) > VC++ 宾馆管理系统(MSSQL)/gusucode/Code/CheckRemainDLG.cpp

    //Download by http://www.NewXing.com
// CheckRemainDLG.cpp : implementation file
//

#include "stdafx.h"
#include "hotel_mis.h"
#include "CheckRemainDLG.h"
#include "Hotel_MISView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CCheckRemainDLG dialog

CCheckRemainDLG::CCheckRemainDLG(CWnd* pParent /*=NULL*/)
	: CDialog(CCheckRemainDLG::IDD, pParent)
{
	//{{AFX_DATA_INIT(CCheckRemainDLG)
	m_iTypePrice = 0;
	m_sType = _T("");
	m_sTop = _T("");
	m_sBottom = _T("");
	//}}AFX_DATA_INIT
}


void CCheckRemainDLG::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCheckRemainDLG)
	DDX_Radio(pDX, IDD_CHECKREMAIN_RADIO_TYPEPRICE, m_iTypePrice);
	DDX_CBString(pDX, IDD_CHECKREMAIN_TYPE, m_sType);
	DDX_CBString(pDX, IDD_CHECKREMAIN_TOP, m_sTop);
	DDX_CBString(pDX, IDD_CHECKREMAIN_BOTTOM, m_sBottom);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CCheckRemainDLG, CDialog)
	//{{AFX_MSG_MAP(CCheckRemainDLG)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCheckRemainDLG message handlers

BOOL CCheckRemainDLG::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	
	// Init IDD_CHECKREMAIN_TYPE Combobox
	_variant_t strQuery, Holder;	
	strQuery = "select distinct typename from roomtype";
	theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	int iCount = theApp.m_pADOSet->GetRecordCount();
	theApp.m_pADOSet->MoveFirst();
	for (int i=0; i<iCount; i++)
	{
		Holder = theApp.m_pADOSet->GetCollect("typename");
		((CComboBox*)GetDlgItem(IDD_CHECKREMAIN_TYPE))->InsertString(i, Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder);
				
		theApp.m_pADOSet->MoveNext();
	}
	((CComboBox*)GetDlgItem(IDD_CHECKREMAIN_TYPE))->SetCurSel(0);
	
    // Init IDD_CHECKREMAIN_TOP Combobox
    CString str;
	strQuery = "select distinct price from roomtype order by price";
	theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	iCount = theApp.m_pADOSet->GetRecordCount();
	theApp.m_pADOSet->MoveFirst();
	for (i=0; i<iCount; i++)
	{
		Holder = theApp.m_pADOSet->GetCollect("price");
		str.Format("%.2f", Holder.dblVal);
		((CComboBox*)GetDlgItem(IDD_CHECKREMAIN_TOP))->InsertString(i, str);
		((CComboBox*)GetDlgItem(IDD_CHECKREMAIN_BOTTOM))->InsertString(i, str);
		
		theApp.m_pADOSet->MoveNext();
	}
	((CComboBox*)GetDlgItem(IDD_CHECKREMAIN_TOP))->SetCurSel(0);
    ((CComboBox*)GetDlgItem(IDD_CHECKREMAIN_BOTTOM))->SetCurSel(0);

	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CCheckRemainDLG::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData(true);
	
	_variant_t strQuery;	
	if ( m_iTypePrice ) strQuery = "select * from rooms where roomprice>="+m_sBottom+" and roomprice<="+m_sTop+" and putup=0"; 
	else strQuery = "select * from rooms where roomtype='"+m_sType+"' and putup=0"; 
	
	CHotel_MISView* p = (CHotel_MISView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView());
	p->RefreshRoom(strQuery);
	
	CDialog::OnOK();
}